package bachelor.datamanagement {
	import CustomEvent.CustomEvent;

	import bachelor.view.CountryPanel;

	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLRequest;

	/**
	 * @author Johannes
	 */
	public class XMLLoader extends MovieClip {
		
////////////////////////////////////////////////////////////////////////////////
/////// VRIABLES ///////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
		private var _myXML : XML;
		private var _myCountry : CountryPanel;
		
		public static const XML_LOADED : String = "XMLLoaded";
		
		
////////////////////////////////////////////////////////////////////////////////
/////// CONSTRUCTOR ////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
		public function XMLLoader(p_XMLPath : String, p_country : CountryPanel) 
		{
//			trace("XMLLoader -> Constructor init...");
			_myCountry = p_country;
			ladeXML(p_XMLPath);
		}
		

////////////////////////////////////////////////////////////////////////////////
/////// METHODS ////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


/////// XML laden //////////////////////////////////////////////////////////////
		private function ladeXML(p_XMLPath : String):void
		{
//			trace("XMLLoader -> ladeXML() init...");
			_myXML = new XML(); 
			var _myURLRequest:URLRequest = new URLRequest(p_XMLPath); 
			var _myLoader : URLLoader = new URLLoader(_myURLRequest); 
			_myLoader.addEventListener(Event.COMPLETE, xmlLoaded);
			try 
			{
				_myLoader.load(_myURLRequest);
			}
			catch (error:ArgumentError) 
			{
//				trace("XMLLoader -> LadeXML() ::: ArgumentError - " + error);
			}
			catch (error:SecurityError) 
			{
//				trace("XMLLoader -> LadeXML() ::: SecurityError - " + error);
			}
		
		}
 
/////// XML laden //////////////////////////////////////////////////////////////
		private function xmlLoaded(event:Event):void
		{
//			trace("XMLLoader -> xmlLoaded() init..."); 
			
    		_myXML = XML(event.target.data); 
			
			dispatchEvent(new CustomEvent(XML_LOADED, _myXML));
//			_myCountry.initAllLayers(_myXML);
			
		}
		
		
		
		
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
	}
}
